package com.canaan.business.service.quality;

import java.util.List;
import com.canaan.business.domain.quality.ProductQualityItem;

/**
 * 物料质检项Service接口
 *
 * @author ruoyi
 * @date 2023-02-03
 */
public interface IProductQualityItemService {
    /**
     * 查询物料质检项
     *
     * @param id 物料质检项主键
     * @return 物料质检项
     */
    ProductQualityItem selectProductQualityItemById(Long id);

    /**
     * 查询物料质检项列表
     *
     * @param productQualityItem 物料质检项
     * @return 物料质检项集合
     */
    List<ProductQualityItem> selectProductQualityItemList(ProductQualityItem productQualityItem);

    /**
     * 新增物料质检项
     *
     * @param productQualityItem 物料质检项
     * @return 结果
     */
    int insertProductQualityItem(ProductQualityItem productQualityItem);

    /**
     * 批量新增物料质检项
     *
     * @param productQualityItemList 物料质检项列表
     * @return 结果
     */
    int batchInsertProductQualityItem(List<ProductQualityItem> productQualityItemList);

    /**
     * 修改物料质检项
     *
     * @param productQualityItem 物料质检项
     * @return 结果
     */
    int updateProductQualityItem(ProductQualityItem productQualityItem);

    /**
     * 批量修改物料质检项
     *
     * @param productQualityItemList 物料质检项列表
     * @return 结果
     */
    int batchUpdateProductQualityItem(List<ProductQualityItem> productQualityItemList);

    /**
     * 批量删除物料质检项
     *
     * @param ids 需要删除的物料质检项主键集合
     * @return 结果
     */
    int deleteProductQualityItemByIds(Long[] ids);

    /**
     * 删除物料质检项信息
     *
     * @param id 物料质检项主键
     * @return 结果
     */
    int deleteProductQualityItemById(Long id);

    /**
     * 查询物料质检项
     *
     * @param no 编号
     * @return 物料质检项
     */
    ProductQualityItem selectProductQualityItemByNo(String no);

    /**
     * 批量删除物料质检项
     *
     * @param nos 需要删除的编号集合
     * @return 结果
     */
    int deleteProductQualityItemByNos(String[] nos);

    /**
     * 删除物料质检项信息
     *
     * @param no 编号
     * @return 结果
     */
    int deleteProductQualityItemByNo(String no);

    /**
     * 导入信息
     *
     * @param fileDataList 文件数据列表
     * @return 结果
     */
    String importData(List<ProductQualityItem> fileDataList);

    /**
     * 根据物料和质检类型查询物料质检项
     * @param productNo
     * @param qualityType
     * @return
     */
    List<ProductQualityItem> selectByPnAndQualityType(String productNo,String qualityType);

    /**
     * 是否出货检
     * @param productNo
     * @return
     */
    boolean isOqc(String productNo);

    /**
     * 是否来料检
     * @param productNo
     * @return
     */
    boolean isIqc(String productNo);

}
